package com.hello.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hello.common.core.annotation.Excel;
import com.hello.common.core.web.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 国标28181设备对象 wvp_device
 * 
 * @author hello
 * @date 2025-09-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class WvpDevice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 设备国标编号 */
    @Excel(name = "设备国标编号")
    private String deviceId;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String name;

    /** 设备厂商 */
    @Excel(name = "设备厂商")
    private String manufacturer;

    /** 设备型号 */
    @Excel(name = "设备型号")
    private String model;

    /** 固件版本 */
    @Excel(name = "固件版本")
    private String firmware;

    /** 传输协议(UDP/TCP) */
    @Excel(name = "传输协议(UDP/TCP)")
    private String transport;

    /** 流模式(主动/被动) */
    @Excel(name = "流模式(主动/被动)")
    private String streamMode;

    /** 在线状态(0离线,1在线) */
    @Excel(name = "在线状态(0离线,1在线)")
    private Integer onLine;

    /** 注册时间 */
    @Excel(name = "注册时间")
    private String registerTime;

    /** 最后心跳时间 */
    @Excel(name = "最后心跳时间")
    private String keepaliveTime;

    /** 设备IP */
    @Excel(name = "设备IP")
    private String ip;

    /** 设备端口 */
    @Excel(name = "设备端口")
    private Long port;

    /** 注册有效期(秒) */
    @Excel(name = "注册有效期(秒)")
    private Long expires;

    /** 目录订阅周期(秒) */
    @Excel(name = "目录订阅周期(秒)")
    private Long subscribeCycleForCatalog;

    /** 移动位置订阅周期(秒) */
    @Excel(name = "移动位置订阅周期(秒)")
    private Long subscribeCycleForMobilePosition;

    /** 移动位置提交间隔(秒) */
    @Excel(name = "移动位置提交间隔(秒)")
    private Long mobilePositionSubmissionInterval;

    /** 报警订阅周期(秒) */
    @Excel(name = "报警订阅周期(秒)")
    private Long subscribeCycleForAlarm;

    /** 设备域名 */
    @Excel(name = "设备域名")
    private String hostAddress;

    /** 字符集 */
    @Excel(name = "字符集")
    private String charset;

    /** ssrc校验(0不校验,1校验) */
    @Excel(name = "ssrc校验(0不校验,1校验)")
    private Integer ssrcCheck;

    /** 地理坐标系统 */
    @Excel(name = "地理坐标系统")
    private String geoCoordSys;

    /** 使用的流媒体服务ID */
    @Excel(name = "使用的流媒体服务ID")
    private String mediaServerId;

    /** 自定义名称 */
    @Excel(name = "自定义名称")
    private String customName;

    /** SDP IP地址 */
    @Excel(name = "SDP IP地址")
    private String sdpIp;

    /** 本地IP地址 */
    @Excel(name = "本地IP地址")
    private String localIp;

    /** 设备密码 */
    @Excel(name = "设备密码")
    private String password;

    /** 是否作为消息通道(0否,1是) */
    @Excel(name = "是否作为消息通道(0否,1是)")
    private Integer asMessageChannel;

    /** 心跳间隔(秒) */
    @Excel(name = "心跳间隔(秒)")
    private Long heartBeatInterval;

    /** 心跳计数器 */
    @Excel(name = "心跳计数器")
    private Long heartBeatCount;

    /** 位置信息能力 */
    @Excel(name = "位置信息能力")
    private Long positionCapability;

    /** 收到ACK后广播推送(0否,1是) */
    @Excel(name = "收到ACK后广播推送(0否,1是)")
    private Integer broadcastPushAfterAck;

    /** 所属服务器ID */
    @Excel(name = "所属服务器ID")
    private String serverId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setDeviceId(String deviceId) 
    {
        this.deviceId = deviceId;
    }

    public String getDeviceId() 
    {
        return deviceId;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setManufacturer(String manufacturer) 
    {
        this.manufacturer = manufacturer;
    }

    public String getManufacturer() 
    {
        return manufacturer;
    }
    public void setModel(String model) 
    {
        this.model = model;
    }

    public String getModel() 
    {
        return model;
    }
    public void setFirmware(String firmware) 
    {
        this.firmware = firmware;
    }

    public String getFirmware() 
    {
        return firmware;
    }
    public void setTransport(String transport) 
    {
        this.transport = transport;
    }

    public String getTransport() 
    {
        return transport;
    }
    public void setStreamMode(String streamMode) 
    {
        this.streamMode = streamMode;
    }

    public String getStreamMode() 
    {
        return streamMode;
    }
    public void setOnLine(Integer onLine) 
    {
        this.onLine = onLine;
    }

    public Integer getOnLine() 
    {
        return onLine;
    }
    public void setRegisterTime(String registerTime) 
    {
        this.registerTime = registerTime;
    }

    public String getRegisterTime() 
    {
        return registerTime;
    }
    public void setKeepaliveTime(String keepaliveTime) 
    {
        this.keepaliveTime = keepaliveTime;
    }

    public String getKeepaliveTime() 
    {
        return keepaliveTime;
    }
    public void setIp(String ip) 
    {
        this.ip = ip;
    }

    public String getIp() 
    {
        return ip;
    }
    public void setPort(Long port) 
    {
        this.port = port;
    }

    public Long getPort() 
    {
        return port;
    }
    public void setExpires(Long expires) 
    {
        this.expires = expires;
    }

    public Long getExpires() 
    {
        return expires;
    }
    public void setSubscribeCycleForCatalog(Long subscribeCycleForCatalog) 
    {
        this.subscribeCycleForCatalog = subscribeCycleForCatalog;
    }

    public Long getSubscribeCycleForCatalog() 
    {
        return subscribeCycleForCatalog;
    }
    public void setSubscribeCycleForMobilePosition(Long subscribeCycleForMobilePosition) 
    {
        this.subscribeCycleForMobilePosition = subscribeCycleForMobilePosition;
    }

    public Long getSubscribeCycleForMobilePosition() 
    {
        return subscribeCycleForMobilePosition;
    }
    public void setMobilePositionSubmissionInterval(Long mobilePositionSubmissionInterval) 
    {
        this.mobilePositionSubmissionInterval = mobilePositionSubmissionInterval;
    }

    public Long getMobilePositionSubmissionInterval() 
    {
        return mobilePositionSubmissionInterval;
    }
    public void setSubscribeCycleForAlarm(Long subscribeCycleForAlarm) 
    {
        this.subscribeCycleForAlarm = subscribeCycleForAlarm;
    }

    public Long getSubscribeCycleForAlarm() 
    {
        return subscribeCycleForAlarm;
    }
    public void setHostAddress(String hostAddress) 
    {
        this.hostAddress = hostAddress;
    }

    public String getHostAddress() 
    {
        return hostAddress;
    }
    public void setCharset(String charset) 
    {
        this.charset = charset;
    }

    public String getCharset() 
    {
        return charset;
    }
    public void setSsrcCheck(Integer ssrcCheck) 
    {
        this.ssrcCheck = ssrcCheck;
    }

    public Integer getSsrcCheck() 
    {
        return ssrcCheck;
    }
    public void setGeoCoordSys(String geoCoordSys) 
    {
        this.geoCoordSys = geoCoordSys;
    }

    public String getGeoCoordSys() 
    {
        return geoCoordSys;
    }
    public void setMediaServerId(String mediaServerId) 
    {
        this.mediaServerId = mediaServerId;
    }

    public String getMediaServerId() 
    {
        return mediaServerId;
    }
    public void setCustomName(String customName) 
    {
        this.customName = customName;
    }

    public String getCustomName() 
    {
        return customName;
    }
    public void setSdpIp(String sdpIp) 
    {
        this.sdpIp = sdpIp;
    }

    public String getSdpIp() 
    {
        return sdpIp;
    }
    public void setLocalIp(String localIp) 
    {
        this.localIp = localIp;
    }

    public String getLocalIp() 
    {
        return localIp;
    }
    public void setPassword(String password) 
    {
        this.password = password;
    }

    public String getPassword() 
    {
        return password;
    }
    public void setAsMessageChannel(Integer asMessageChannel) 
    {
        this.asMessageChannel = asMessageChannel;
    }

    public Integer getAsMessageChannel() 
    {
        return asMessageChannel;
    }
    public void setHeartBeatInterval(Long heartBeatInterval) 
    {
        this.heartBeatInterval = heartBeatInterval;
    }

    public Long getHeartBeatInterval() 
    {
        return heartBeatInterval;
    }
    public void setHeartBeatCount(Long heartBeatCount) 
    {
        this.heartBeatCount = heartBeatCount;
    }

    public Long getHeartBeatCount() 
    {
        return heartBeatCount;
    }
    public void setPositionCapability(Long positionCapability) 
    {
        this.positionCapability = positionCapability;
    }

    public Long getPositionCapability() 
    {
        return positionCapability;
    }
    public void setBroadcastPushAfterAck(Integer broadcastPushAfterAck) 
    {
        this.broadcastPushAfterAck = broadcastPushAfterAck;
    }

    public Integer getBroadcastPushAfterAck() 
    {
        return broadcastPushAfterAck;
    }
    public void setServerId(String serverId) 
    {
        this.serverId = serverId;
    }

    public String getServerId() 
    {
        return serverId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deviceId", getDeviceId())
            .append("name", getName())
            .append("manufacturer", getManufacturer())
            .append("model", getModel())
            .append("firmware", getFirmware())
            .append("transport", getTransport())
            .append("streamMode", getStreamMode())
            .append("onLine", getOnLine())
            .append("registerTime", getRegisterTime())
            .append("keepaliveTime", getKeepaliveTime())
            .append("ip", getIp())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("port", getPort())
            .append("expires", getExpires())
            .append("subscribeCycleForCatalog", getSubscribeCycleForCatalog())
            .append("subscribeCycleForMobilePosition", getSubscribeCycleForMobilePosition())
            .append("mobilePositionSubmissionInterval", getMobilePositionSubmissionInterval())
            .append("subscribeCycleForAlarm", getSubscribeCycleForAlarm())
            .append("hostAddress", getHostAddress())
            .append("charset", getCharset())
            .append("ssrcCheck", getSsrcCheck())
            .append("geoCoordSys", getGeoCoordSys())
            .append("mediaServerId", getMediaServerId())
            .append("customName", getCustomName())
            .append("sdpIp", getSdpIp())
            .append("localIp", getLocalIp())
            .append("password", getPassword())
            .append("asMessageChannel", getAsMessageChannel())
            .append("heartBeatInterval", getHeartBeatInterval())
            .append("heartBeatCount", getHeartBeatCount())
            .append("positionCapability", getPositionCapability())
            .append("broadcastPushAfterAck", getBroadcastPushAfterAck())
            .append("serverId", getServerId())
            .toString();
    }
}
